In virtual computing environments, backups can be created by taking snapshots of virtual disk images. A snapshot preserves the contents of the virtual disk at a certain point in time. Multiple snapshots may be created and stored to preserve the contents at different points in time. In addition, one or more redo logs may be created for each snapshot. The redo logs are metadata structures that keep track of the changes made to a disk since the snapshot was taken. In many cases, only a small portion of the disk may change from one redo log to the next.
A virtual computing environment may use a cache to speed up input-output operations (IOs) from one or more virtual machines (VMs). The cache is often a high-speed storage device, such as a solid state drive (SSD). Because the virtual computing environment may have multiple virtual machines, multiple snapshots, and multiple redo logs, caching data for each of these without an intelligent caching scheme would result in a large amount of redundant data being stored in the cache.